From 7b7866eb2689ba6334d4beb3e1a63afa376bab90 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Thu, 2 Jun 2011 17:26:10 +0100 Subject: [PATCH] libxl: check return values of read/write Some distros enable -D_FORTIFY_SOURCE=2 by default (https://wiki.ubuntu.com/CompilerFlags) which adds the warn_unused_result attribute to several functions including read(2) and write(2) Although we don't really care about error reading or writing the libxl spawn fd catch them anyway to keep this warning happy. Signed-off-by: Ian Campbell Acked-by: Ian Jackson Tested-by: Olaf Hering Committed-by: Ian Jackson --- tools/libxl/libxl_device.c | 4 +++- tools/libxl/libxl_exec.c | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c index cc3ae25d1a..ba537bfde8 100644 --- a/tools/libxl/libxl_device.c +++ b/tools/libxl/libxl_device.c @@ -485,7 +485,9 @@ again: } if (starting && FD_ISSET(starting->for_spawn->fd, &rfds)) { unsigned char dummy; - read(starting->for_spawn->fd, &dummy, sizeof(dummy)); + if (read(starting->for_spawn->fd, &dummy, sizeof(dummy)) != 1) + LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_DEBUG, + "failed to read spawn status pipe"); } } } diff --git a/tools/libxl/libxl_exec.c b/tools/libxl/libxl_exec.c index 4a98f733a6..60d0b51014 100644 --- a/tools/libxl/libxl_exec.c +++ b/tools/libxl/libxl_exec.c @@ -220,8 +220,10 @@ int libxl__spawn_spawn(libxl__gc *gc, rc = (WIFEXITED(status) ? WEXITSTATUS(status) : WIFSIGNALED(status) && WTERMSIG(status) < 127 ? WTERMSIG(status)+128 : -1); - if (for_spawn) - write(pipes[1], &dummy, sizeof(dummy)); + if (for_spawn) { + if (write(pipes[1], &dummy, sizeof(dummy)) != 1) + perror("libxl__spawn_spawn: unable to signal child exit to parent"); + } _exit(rc); err_parent_pipes: -- 2.30.2